Many software applications today are written as web-based applications to be run in an Internet browser. A web application can include web pages that have a number of user interface (UI) components. UI components can include rich components for user input and interaction. Examples of rich components can include auto-complete, calendar, file upload, list shuffle component, suggestion box component, etc. Web application Quality Assurance (QA) Engineers or test developers can use automated testing tools to test that the web-based application components are performing as expected. Examples of automated tools for testing web-based applications can include Selenium, HtmlUnit, HttpUnit, WebTest.
A user, such as a QA Engineer or test developer, can use an automated tool to develop test cases for testing a web application. Although a tool can automate the execution of testing the UI components of the web applications, a QA Engineer must manually define the tests to be executed. Often times, these tests previously have been defined and the code and test descriptions for these tests have already been written. From practice it may be seen that these tests are often written with no re-usability of code in mind. Blocks of test code are often manually duplicated across the test suites. There is not a current mechanism that allows QA Engineers to re-use the tests descriptions that have already been defined.